<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>魔术常量</title>

 </head>
 <body><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="language.constants.syntax.html">语法</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="language.expressions.html">表达式</a></div>
 <div class="up"><a href="language.constants.html">常量</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div><hr /><div id="language.constants.predefined" class="sect1">
   <h2 class="title">魔术常量</h2>

   <p class="simpara">
    PHP 向它运行的任何脚本提供了大量的<a href="reserved.constants.html" class="link">预定义常量</a>。不过很多常量都是由不同的扩展库定义的，只有在加载了这些扩展库时才会出现，或者动态加载后，或者在编译时已经包括进去了。
   </p>
   <p class="para">
    有八个魔术常量它们的值随着它们在代码中的位置改变而改变。例如
    <strong><code>__LINE__</code></strong> 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写，如下：
   </p>
   <p class="para">
    <table class="doctable table">
     <caption><strong>几个 PHP 的“魔术常量”</strong></caption>
     
      <thead>
       <tr>
        <th>名称</th>
        <th>说明</th>
       </tr>

      </thead>

      <tbody class="tbody">
       <tr id="constant.line">
        <td><strong><code>__LINE__</code></strong></td>
        <td>
         文件中的当前行号。
        </td>
       </tr>

       <tr id="constant.file">
        <td><strong><code>__FILE__</code></strong></td>
        <td>
         文件的完整路径和文件名。如果用在被包含文件中，则返回被包含的文件名。自
         PHP 4.0.2 起，<strong><code>__FILE__</code></strong>
         总是包含一个绝对路径（如果是符号连接，则是解析后的绝对路径），而在此之前的版本有时会包含一个相对路径。
        </td>
       </tr>

       <tr id="constant.dir">
        <td><strong><code>__DIR__</code></strong></td>
        <td>
         文件所在的目录。如果用在被包括文件中，则返回被包括的文件所在的目录。它等价于
         <em>dirname(__FILE__)</em>。除非是根目录，否则目录中名不包括末尾的斜杠。（PHP 5.3.0中新增）
=        </td>
       </tr>
       
       <tr id="constant.function">
        <td><strong><code>__FUNCTION__</code></strong></td>
        <td>
         函数名称（PHP 4.3.0 新加）。自 PHP 5
         起本常量返回该函数被定义时的名字（区分大小写）。在
         PHP 4 中该值总是小写字母的。
        </td>
       </tr>

       <tr id="constant.class">
        <td><strong><code>__CLASS__</code></strong></td>
        <td>
         类的名称（PHP 4.3.0 新加）。自 PHP 5
         起本常量返回该类被定义时的名字（区分大小写）。在
         PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域（例如
		 <em>Foo\Bar</em>）。注意自 PHP 5.4 起 __CLASS__
		 对 trait 也起作用。当用在 trait 方法中时，__CLASS__
		 是调用 trait 方法的类的名字。
        </td>
       </tr>

       <tr id="constant.trait">
        <td><strong><code>__TRAIT__</code></strong></td>
        <td>
         Trait 的名字（PHP 5.4.0 新加）。自 PHP 5.4 起此常量返回 trait
		 被定义时的名字（区分大小写）。Trait 名包括其被声明的作用区域（例如
		 <em>Foo\Bar</em>）。
        </td>
       </tr>

       <tr id="constant.method">
        <td><strong><code>__METHOD__</code></strong></td>
        <td>
         类的方法名（PHP 5.0.0 新加）。返回该方法被定义时的名字（区分大小写）。
        </td>
       </tr>

       <tr id="constant.namespace">
        <td><strong><code>__NAMESPACE__</code></strong></td>
        <td>
         当前命名空间的名称（区分大小写）。此常量是在编译时定义的（PHP 5.3.0 新增）。
        </td>
       </tr>

      </tbody>
     
    </table>

   </p>
   <p class="para">
    参见
    <span class="function"><a href="function.get-class.html" class="function">get_class()</a></span>，<span class="function"><a href="function.get-object-vars.html" class="function">get_object_vars()</a></span>，<span class="function"><a href="function.file-exists.html" class="function">file_exists()</a></span> 和 <span class="function"><a href="function.function-exists.html" class="function">function_exists()</a></span>。
   </p>

  </div><hr /><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="language.constants.syntax.html">语法</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="language.expressions.html">表达式</a></div>
 <div class="up"><a href="language.constants.html">常量</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div></body></html>
